package com.hzz.entity.patrol;

import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import com.hzz.framework.entity.BaseEntity;
import org.apache.commons.lang3.StringUtils;

import java.util.Date;

@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonInclude(JsonInclude.Include.NON_NULL)
public class PatrolTask extends BaseEntity {
    /**
     * id
     */
    Long id;
    
    /**
     * 发布对象（一期系统只有本级河道可选）
     */
    String target;
    
    /**
     * 所在河道
     */
    String areaIds;
    
    public void setAreaIds(String areaIds) {
        this.areaIds = areaIds;
        if (StringUtils.isNotBlank(areaIds)) {
            String temp = areaIds;
            while (temp.endsWith(",")) {
                temp = temp.substring(0, temp.length() - 1);
            }
            this.areaIdsSub = temp;
        }
    }
    
    /**
     * 所在河道（去除末尾多余逗号）
     */
    String areaIdsSub;
    
    String areaNames;
    
    /**
     * 所在河道
     */
    String riverCourseCode;
    
    /**
     * 河道名称
     */
    String riverCourseName;
    
    /**
     * 任务类型（临时任务、常规任务、紧急任务）
     */
    String taskType;
    
    /**
     * 执行人角色（巡查员、河长）
     */
    String executorRole;
    
    /**
     * 任务开始时间
     */
    Date startTime;
    
    /**
     * 任务有效结束时间
     */
    Date endTime;
    
    /**
     * 任务实际实行开始时间
     */
    Date excStartTime;
    
    /**
     * 任务实际执行完成时间
     */
    Date excEndTime;
    
    /**
     * 任务状态（未巡查、已巡查，默认是未巡查）
     */
    String taskStatus;
    
    /**
     * 任务内容
     */
    String taskContent;
    
    /**
     * 巡查轨迹（轨迹坐标点集合）([{lon,lat},{lon,lat}...])
     */
    String patrolTrack;
    
    /**
     * 巡查公里数
     */
    String patrolKilometer;
    
    /**
     * 巡查人账号（巡河时由app端传入）
     */
    String executorAccount;
    
    /**
     * 巡查人姓名（巡河时由app端传入）
     */
    String executorName;
    
    /**
     * 日志删除标识(默认0未删除，1已删除)
     */
    Integer logDelFlag;
    
    /**
     * 创建者河长级别（省、市、区、街、村）
     */
    String creatorLevel;
    
    /**
     * 备注
     */
    String memo;
    
    /**
     * 删除标识(0未删除1已删除)
     */
    Integer delFlag;
    
    /**
     * 建立者id
     */
    Long createId;
    
    /**
     * 更新时间
     */
    Date dateUpdated;
    
    /**
     * 创建时间
     */
    Date dateCreated;
    
    /**
     * 同步数据查询标记
     */
    Integer isDSync;
    
    /**
     * 巡河日志列表查询筛选行政区划的参数
     */
    String filterAreaIds;
    
    String filterAreaNames;

    /**
     * 同步状态 0否1是2失败
     */
    Integer dsyncState;

    /**
     * 同步次数
     */
    Integer dsyncCount;

    /**
     * 同步数据
     */
    String dsyncDjson;

    /**
     * 同步结果
     */
    String dsyncResult;
    /**
     * 行政区划
     */
    String pac;

}
